package str

import "sort"


/*
方法一：排序
时间复杂度:O(N) 字符串的长度
空间复杂度:O(S) 字符集大小
*/
func isAnagram(s string, t string) bool {
	if len(s) != len(t) {
		return false
	}
	m := make(map[rune]int)
	for _, v := range s {
		m[v]++
	}
	for _, v := range t {
		m[v]--
		if m[v] < 0 {
			return false
		}
	}
	return true
}


/*
方法二：排序，如果字符串排序后相等，则满足条件
时间复杂度:O(NlogN)
空间复杂度:O(N+logN) 排序需要的空间
*/
func isAnagram1(s string, t string) bool {
	a, b := []byte(s), []byte(t)
	sort.Slice(a, func(i, j int) bool {
		return a[i] < a[j]
	})
	sort.Slice(b, func(i, j int) bool {
		return b[i] < b[j]
	})
	return string(a) == string(b)
}
